flavor 1
srclang 1
id 65535
numfuncs 108
entryfunc &main
fileinfo {
  @INFO_filename "./main.ast"}
srcfileinfo {
  2 "/usr/lib/gcc-cross/aarch64-linux-gnu/5.5.0/../../../../aarch64-linux-gnu/include/bits/libio.h",
  3 "/usr/lib/gcc-cross/aarch64-linux-gnu/5.5.0/../../../../aarch64-linux-gnu/include/stdio.h",
  4 "/home/lukaitian/maple_c_workspace/Maple/OpenArkCompiler/testsuite/c_test/unit_test/UNIT0205-cmpasr-propopndsize/main.c",
  5 "/usr/lib/gcc-cross/aarch64-linux-gnu/5.5.0/../../../../aarch64-linux-gnu/include/bits/types.h",
  6 "/usr/lib/gcc-cross/aarch64-linux-gnu/5.5.0/../../../../aarch64-linux-gnu/include/bits/types/__mbstate_t.h",
  7 "/usr/lib/gcc-cross/aarch64-linux-gnu/5.5.0/../../../../aarch64-linux-gnu/include/bits/_G_config.h",
  8 "/usr/lib/gcc-cross/aarch64-linux-gnu/5.5.0/../../../../aarch64-linux-gnu/include/bits/types/__FILE.h",
  9 "/usr/lib/gcc-cross/aarch64-linux-gnu/5.5.0/../../../../aarch64-linux-gnu/include/bits/types/FILE.h",
  10 "/home/lukaitian/maple_c_workspace/Maple/OpenArkCompiler/tools/clang+llvm-15.0.4-x86_64-linux-gnu-ubuntu-18.04-enhanced/lib/clang/15.0.4/include/stdarg.h",
  11 "/usr/lib/gcc-cross/aarch64-linux-gnu/5.5.0/../../../../aarch64-linux-gnu/include/bits/sys_errlist.h"}
type $_IO_FILE <struct {
  @_flags i32,
  @_IO_read_ptr <* u8>,
  @_IO_read_end <* u8>,
  @_IO_read_base <* u8>,
  @_IO_write_base <* u8>,
  @_IO_write_ptr <* u8>,
  @_IO_write_end <* u8>,
  @_IO_buf_base <* u8>,
  @_IO_buf_end <* u8>,
  @_IO_save_base <* u8>,
  @_IO_backup_base <* u8>,
  @_IO_save_end <* u8>,
  @_markers <* <$_IO_marker>>,
  @_chain <* <$_IO_FILE>>,
  @_fileno i32,
  @_flags2 i32,
  @_old_offset i64,
  @_cur_column u16,
  @_vtable_offset i8,
  @_shortbuf <[1] u8>,
  @_lock <* void>,
  @_offset i64,
  @__pad1 <* void>,
  @__pad2 <* void>,
  @__pad3 <* void>,
  @__pad4 <* void>,
  @__pad5 u64,
  @_mode i32,
  @_unused2 <[20] u8>}>
type $__va_list <struct {
  @__stack <* void>,
  @__gr_top <* void>,
  @__vr_top <* void>,
  @__gr_offs i32,
  @__vr_offs i32}>
type $_G_fpos_t <struct typedef {
  @__pos i64,
  @__state <$__mbstate_t>}>
type $__fsid_t <struct typedef {
  @__val <[2] i32>}>
type $_IO_marker <struct {
  @_next <* <$_IO_marker>>,
  @_sbuf <* <$_IO_FILE>>,
  @_pos i32}>
type $__mbstate_t <struct typedef {
  @__count i32,
  @__value <$unnamed.78>}>
type $unnamed.78 <union {
  @__wch u32,
  @__wchb <[4] u8>}>
type $_G_fpos64_t <struct typedef {
  @__pos i64,
  @__state <$__mbstate_t>}>
type $_IO_FILE_plus <structincomplete {}>
type $__FILE <struct typedef type_alias($_IO_FILE) {
  @_flags i32,
  @_IO_read_ptr <* u8>,
  @_IO_read_end <* u8>,
  @_IO_read_base <* u8>,
  @_IO_write_base <* u8>,
  @_IO_write_ptr <* u8>,
  @_IO_write_end <* u8>,
  @_IO_buf_base <* u8>,
  @_IO_buf_end <* u8>,
  @_IO_save_base <* u8>,
  @_IO_backup_base <* u8>,
  @_IO_save_end <* u8>,
  @_markers <* <$_IO_marker>>,
  @_chain <* <$_IO_FILE>>,
  @_fileno i32,
  @_flags2 i32,
  @_old_offset i64,
  @_cur_column u16,
  @_vtable_offset i8,
  @_shortbuf <[1] u8>,
  @_lock <* void>,
  @_offset i64,
  @__pad1 <* void>,
  @__pad2 <* void>,
  @__pad3 <* void>,
  @__pad4 <* void>,
  @__pad5 u64,
  @_mode i32,
  @_unused2 <[20] u8>}>
type $FILE <struct typedef type_alias($_IO_FILE) {
  @_flags i32,
  @_IO_read_ptr <* u8>,
  @_IO_read_end <* u8>,
  @_IO_read_base <* u8>,
  @_IO_write_base <* u8>,
  @_IO_write_ptr <* u8>,
  @_IO_write_end <* u8>,
  @_IO_buf_base <* u8>,
  @_IO_buf_end <* u8>,
  @_IO_save_base <* u8>,
  @_IO_backup_base <* u8>,
  @_IO_save_end <* u8>,
  @_markers <* <$_IO_marker>>,
  @_chain <* <$_IO_FILE>>,
  @_fileno i32,
  @_flags2 i32,
  @_old_offset i64,
  @_cur_column u16,
  @_vtable_offset i8,
  @_shortbuf <[1] u8>,
  @_lock <* void>,
  @_offset i64,
  @__pad1 <* void>,
  @__pad2 <* void>,
  @__pad3 <* void>,
  @__pad4 <* void>,
  @__pad5 u64,
  @_mode i32,
  @_unused2 <[20] u8>}>
type $va_list <struct typedef type_alias($__builtin_va_list, $__va_list) {
  @__stack <* void>,
  @__gr_top <* void>,
  @__vr_top <* void>,
  @__gr_offs i32,
  @__vr_offs i32}>
type $__gnuc_va_list <struct typedef type_alias($__builtin_va_list, $__va_list) {
  @__stack <* void>,
  @__gr_top <* void>,
  @__vr_top <* void>,
  @__gr_offs i32,
  @__vr_offs i32}>
type $fpos_t <struct typedef type_alias($_G_fpos_t, ) {
  @__pos i64,
  @__state <$__mbstate_t>}>
LOC 2 389 12
func &__underflow public extern (var %arg|1 <* <$_IO_FILE>>) i32
LOC 2 390 12
func &__uflow public extern (var %arg|2 <* <$_IO_FILE>>) i32
LOC 2 391 12
func &__overflow public extern (var %arg|3 <* <$_IO_FILE>>, var %arg|4 i32) i32
LOC 2 433 12
func &_IO_getc public extern (var %__fp <* <$_IO_FILE>>) i32
LOC 2 434 12
func &_IO_putc public extern (var %__c i32, var %__fp <* <$_IO_FILE>>) i32
LOC 2 435 12
func &_IO_feof public extern (var %__fp <* <$_IO_FILE>>) i32
LOC 2 436 12
func &_IO_ferror public extern (var %__fp <* <$_IO_FILE>>) i32
LOC 2 438 12
func &_IO_peekc_locked public extern (var %__fp <* <$_IO_FILE>>) i32
LOC 2 444 13
func &_IO_flockfile public extern (var %arg|5 <* <$_IO_FILE>>) void
LOC 2 445 13
func &_IO_funlockfile public extern (var %arg|6 <* <$_IO_FILE>>) void
LOC 2 446 12
func &_IO_ftrylockfile public extern (var %arg|7 <* <$_IO_FILE>>) i32
LOC 2 462 12
func &_IO_vfscanf public extern (var %arg|8 <* <$_IO_FILE>> restrict, var %arg|9 <* u8> restrict, var %arg|10 <$__va_list>, var %arg|11 <* i32> restrict) i32
LOC 2 464 12
func &_IO_vfprintf public extern (var %arg|12 <* <$_IO_FILE>> restrict, var %arg|13 <* u8> restrict, var %arg|14 <$__va_list>) i32
LOC 2 466 20
func &_IO_padn public extern (var %arg|15 <* <$_IO_FILE>>, var %arg|16 i32, var %arg|17 i64) i64
LOC 2 467 19
func &_IO_sgetn public extern (var %arg|18 <* <$_IO_FILE>>, var %arg|19 <* void>, var %arg|20 u64) u64
LOC 2 469 20
func &_IO_seekoff public extern (var %arg|21 <* <$_IO_FILE>>, var %arg|22 i64, var %arg|23 i32, var %arg|24 i32) i64
LOC 2 470 20
func &_IO_seekpos public extern (var %arg|25 <* <$_IO_FILE>>, var %arg|26 i64, var %arg|27 i32) i64
LOC 2 472 13
func &_IO_free_backup_area public extern (var %arg|28 <* <$_IO_FILE>>) void
LOC 3 144 12
func &remove public extern (var %__filename <* u8>) i32
LOC 3 146 12
func &rename public extern (var %__old <* u8>, var %__new <* u8>) i32
LOC 3 150 12
func &renameat public extern (var %__oldfd i32, var %__old <* u8>, var %__newfd i32, var %__new <* u8>) i32
LOC 3 159 14
func &tmpfile public extern () <* <$_IO_FILE>>
LOC 3 173 14
func &tmpnam public extern (var %__s <* u8>) <* u8>
LOC 3 178 14
func &tmpnam_r public extern (var %__s <* u8>) <* u8>
LOC 3 190 14
func &tempnam public extern (var %__dir <* u8>, var %__pfx <* u8>) <* u8>
LOC 3 199 12
func &fclose public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 204 12
func &fflush public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 213 12
func &fflush_unlocked public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 232 14
func &fopen public extern (var %__filename <* u8> restrict, var %__modes <* u8> restrict) <* <$_IO_FILE>>
LOC 3 238 14
func &freopen public extern (var %__filename <* u8> restrict, var %__modes <* u8> restrict, var %__stream <* <$_IO_FILE>> restrict) <* <$_IO_FILE>>
LOC 3 265 14
func &fdopen public extern (var %__fd i32, var %__modes <* u8>) <* <$_IO_FILE>>
LOC 3 278 14
func &fmemopen public extern (var %__s <* void>, var %__len u64, var %__modes <* u8>) <* <$_IO_FILE>>
LOC 3 284 14
func &open_memstream public extern (var %__bufloc <* <* u8>>, var %__sizeloc <* u64>) <* <$_IO_FILE>>
LOC 3 290 13
func &setbuf public extern (var %__stream <* <$_IO_FILE>> restrict, var %__buf <* u8> restrict) void
LOC 3 294 12
func &setvbuf public extern (var %__stream <* <$_IO_FILE>> restrict, var %__buf <* u8> restrict, var %__modes i32, var %__n u64) i32
LOC 3 300 13
func &setbuffer public extern (var %__stream <* <$_IO_FILE>> restrict, var %__buf <* u8> restrict, var %__size u64) void
LOC 3 304 13
func &setlinebuf public extern (var %__stream <* <$_IO_FILE>>) void
LOC 3 312 12
func &fprintf public varargs extern (var %__stream <* <$_IO_FILE>> restrict, var %__format <* u8> restrict, ...) i32
LOC 3 318 12
func &printf public used varargs extern (var %__format <* u8> restrict, ...) i32
LOC 3 320 12
func &sprintf public varargs extern (var %__s <* u8> restrict, var %__format <* u8> restrict, ...) i32
LOC 3 327 12
func &vfprintf public extern (var %__s <* <$_IO_FILE>> restrict, var %__format <* u8> restrict, var %__arg <$__va_list>) i32
LOC 3 333 12
func &vprintf public extern (var %__format <* u8> restrict, var %__arg <$__va_list>) i32
LOC 3 335 12
func &vsprintf public extern (var %__s <* u8> restrict, var %__format <* u8> restrict, var %__arg <$__va_list>) i32
LOC 3 340 12
func &snprintf public varargs extern (var %__s <* u8> restrict, var %__maxlen u64, var %__format <* u8> restrict, ...) i32
LOC 3 344 12
func &vsnprintf public extern (var %__s <* u8> restrict, var %__maxlen u64, var %__format <* u8> restrict, var %__arg <$__va_list>) i32
LOC 3 365 12
func &vdprintf public extern (var %__fd i32, var %__fmt <* u8> restrict, var %__arg <$__va_list>) i32
LOC 3 368 12
func &dprintf public varargs extern (var %__fd i32, var %__fmt <* u8> restrict, ...) i32
LOC 3 377 12
func &fscanf public varargs extern (var %__stream <* <$_IO_FILE>> restrict, var %__format <* u8> restrict, ...) i32
LOC 3 383 12
func &scanf public varargs extern (var %__format <* u8> restrict, ...) i32
LOC 3 385 12
func &sscanf public varargs extern (var %__s <* u8> restrict, var %__format <* u8> restrict, ...) i32
LOC 3 395 12
func &__isoc99_fscanf public varargs extern (var %__stream <* <$_IO_FILE>> restrict, var %__format <* u8> restrict, ...) i32
LOC 3 398 12
func &__isoc99_scanf public varargs extern (var %__format <* u8> restrict, ...) i32
LOC 3 400 12
func &__isoc99_sscanf public varargs extern (var %__s <* u8> restrict, var %__format <* u8> restrict, ...) i32
LOC 3 420 12
func &vfscanf public extern (var %__s <* <$_IO_FILE>> restrict, var %__format <* u8> restrict, var %__arg <$__va_list>) i32
LOC 3 428 12
func &vscanf public extern (var %__format <* u8> restrict, var %__arg <$__va_list>) i32
LOC 3 432 12
func &vsscanf public extern (var %__s <* u8> restrict, var %__format <* u8> restrict, var %__arg <$__va_list>) i32
LOC 3 443 12
func &__isoc99_vfscanf public extern (var %__s <* <$_IO_FILE>> restrict, var %__format <* u8> restrict, var %__arg <$__va_list>) i32
LOC 3 448 12
func &__isoc99_vscanf public extern (var %__format <* u8> restrict, var %__arg <$__va_list>) i32
LOC 3 451 12
func &__isoc99_vsscanf public extern (var %__s <* u8> restrict, var %__format <* u8> restrict, var %__arg <$__va_list>) i32
LOC 3 477 12
func &fgetc public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 478 12
func &getc public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 484 12
func &getchar public extern () i32
LOC 3 495 12
func &getc_unlocked public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 496 12
func &getchar_unlocked public extern () i32
LOC 3 506 12
func &fgetc_unlocked public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 517 12
func &fputc public extern (var %__c i32, var %__stream <* <$_IO_FILE>>) i32
LOC 3 518 12
func &putc public extern (var %__c i32, var %__stream <* <$_IO_FILE>>) i32
LOC 3 524 12
func &putchar public extern (var %__c i32) i32
LOC 3 537 12
func &fputc_unlocked public extern (var %__c i32, var %__stream <* <$_IO_FILE>>) i32
LOC 3 545 12
func &putc_unlocked public extern (var %__c i32, var %__stream <* <$_IO_FILE>>) i32
LOC 3 546 12
func &putchar_unlocked public extern (var %__c i32) i32
LOC 3 553 12
func &getw public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 556 12
func &putw public extern (var %__w i32, var %__stream <* <$_IO_FILE>>) i32
LOC 3 564 14
func &fgets public extern (var %__s <* u8> restrict, var %__n i32, var %__stream <* <$_IO_FILE>> restrict) <* u8>
LOC 3 603 20
func &__getdelim public extern (var %__lineptr <* <* u8>> restrict, var %__n <* u64> restrict, var %__delimiter i32, var %__stream <* <$_IO_FILE>> restrict) i64
LOC 3 606 20
func &getdelim public extern (var %__lineptr <* <* u8>> restrict, var %__n <* u64> restrict, var %__delimiter i32, var %__stream <* <$_IO_FILE>> restrict) i64
LOC 3 616 20
func &getline public extern (var %__lineptr <* <* u8>> restrict, var %__n <* u64> restrict, var %__stream <* <$_IO_FILE>> restrict) i64
LOC 3 626 12
func &fputs public extern (var %__s <* u8> restrict, var %__stream <* <$_IO_FILE>> restrict) i32
LOC 3 632 12
func &puts public extern (var %__s <* u8>) i32
LOC 3 639 12
func &ungetc public extern (var %__c i32, var %__stream <* <$_IO_FILE>>) i32
LOC 3 646 15
func &fread public extern (var %__ptr <* void> restrict, var %__size u64, var %__n u64, var %__stream <* <$_IO_FILE>> restrict) u64
LOC 3 652 15
func &fwrite public extern (var %__ptr <* void> restrict, var %__size u64, var %__n u64, var %__s <* <$_IO_FILE>> restrict) u64
LOC 3 673 15
func &fread_unlocked public extern (var %__ptr <* void> restrict, var %__size u64, var %__n u64, var %__stream <* <$_IO_FILE>> restrict) u64
LOC 3 675 15
func &fwrite_unlocked public extern (var %__ptr <* void> restrict, var %__size u64, var %__n u64, var %__stream <* <$_IO_FILE>> restrict) u64
LOC 3 684 12
func &fseek public extern (var %__stream <* <$_IO_FILE>>, var %__off i64, var %__whence i32) i32
LOC 3 689 17
func &ftell public extern (var %__stream <* <$_IO_FILE>>) i64
LOC 3 694 13
func &rewind public extern (var %__stream <* <$_IO_FILE>>) void
LOC 3 707 12
func &fseeko public extern (var %__stream <* <$_IO_FILE>>, var %__off i64, var %__whence i32) i32
LOC 3 712 16
func &ftello public extern (var %__stream <* <$_IO_FILE>>) i64
LOC 3 731 12
func &fgetpos public extern (var %__stream <* <$_IO_FILE>> restrict, var %__pos <* <$_G_fpos_t>> restrict) i32
LOC 3 736 12
func &fsetpos public extern (var %__stream <* <$_IO_FILE>>, var %__pos <* <$_G_fpos_t>>) i32
LOC 3 757 13
func &clearerr public extern (var %__stream <* <$_IO_FILE>>) void
LOC 3 759 12
func &feof public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 761 12
func &ferror public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 765 13
func &clearerr_unlocked public extern (var %__stream <* <$_IO_FILE>>) void
LOC 3 766 12
func &feof_unlocked public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 767 12
func &ferror_unlocked public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 775 13
func &perror public extern (var %__s <* u8>) void
LOC 3 786 12
func &fileno public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 791 12
func &fileno_unlocked public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 800 14
func &popen public extern (var %__command <* u8>, var %__modes <* u8>) <* <$_IO_FILE>>
LOC 3 806 12
func &pclose public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 812 14
func &ctermid public extern (var %__s <* u8>) <* u8>
LOC 3 840 13
func &flockfile public extern (var %__stream <* <$_IO_FILE>>) void
LOC 3 844 12
func &ftrylockfile public extern (var %__stream <* <$_IO_FILE>>) i32
LOC 3 847 13
func &funlockfile public extern (var %__stream <* <$_IO_FILE>>) void
LOC 4 5 5
func &foo public used (var %i u32 used, var %g u32 used) i32
LOC 4 23 5
func &main public () i32
LOC 2 319 29
var $_IO_2_1_stdin_ extern <$_IO_FILE_plus>
LOC 2 320 29
var $_IO_2_1_stdout_ extern <$_IO_FILE_plus>
LOC 2 321 29
var $_IO_2_1_stderr_ extern <$_IO_FILE_plus>
LOC 3 135 25
var $stdin extern <* <$_IO_FILE>>
LOC 3 136 25
var $stdout extern <* <$_IO_FILE>>
LOC 3 137 25
var $stderr extern <* <$_IO_FILE>>
LOC 11 26 12
var $sys_nerr extern i32
LOC 11 27 26
var $sys_errlist extern <[1] <* u8> incomplete_array> const
LOC 4 3 5
var $g_foo_result i32 used
LOC 4 20 12
var $g_1 i32 used = 6
LOC 4 21 12
var $g_2 i32 used = 8
LOC 4 5 5
func &foo public used (var %i u32 used, var %g u32 used) i32 {
  funcid 107
  funcinfo {
    @INFO_fullname "foo"}

LOC 4 7 7
  var %result_7_7 i32 used

LOC 4 7 7
  dassign %result_7_7 0 (constval i32 123)
LOC 4 8 3
  if (lt u1 u32 (dread u32 %i, dread u32 %g)) {
LOC 4 9 17
    dassign $g_foo_result 0 (add i32 (dread i32 $g_foo_result, constval i32 1))
  }
LOC 4 11 3
  if (gt u1 u32 (
    dread u32 %i,
    ashr u32 (dread u32 %g, constval i32 1))) {
LOC 4 12 12
    dassign %result_7_7 0 (constval i32 0)
  }
  else {
LOC 4 14 12
    dassign %result_7_7 0 (constval i32 1)
  }
LOC 4 16 3
  return (dread i32 %result_7_7)
}
LOC 4 23 5
func &main public () i32 {
  funcid 108
  funcinfo {
    @INFO_fullname "main"}

  var %retVar_77 i32
  var %retVar_76 i32

LOC 4 24 17
  callassigned &foo (
    cvt u32 i32 (dread i32 $g_1),
    cvt u32 i32 (dread i32 $g_2)) { dassign %retVar_77 0 }
LOC 4 24 3
  callassigned &printf (conststr ptr "%d\x0a", dread i32 %retVar_77) { dassign %retVar_76 0 }
LOC 4 25 3
  return (constval i32 0)
}
